<?php 
/**
 * 
 * Controlador de Outbound
 * @author Natanael
 * 
 */
class Outbound extends Controller{
	
	public function __construct()
	{	
		 parent::Controller();
		 $this->load->database();	
		 $this->load->model(array('moutbound','mprocesosoutbound','mcategoriaafiliado','provincias','mtipo_outbound'));   	
	}
	
	public function index()
	{
		
	     $this->load->view('main', array('content_page' => 'list_outbound','menutop'=>10));

	}
	
	public function data()
	{
		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'ID_airport'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		    header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		    header("Cache-Control: no-cache, must-revalidate" );
		    header("Pragma: no-cache" );
		    
		$result = $this->moutbound->loadOutbound();
		$totalRecords = count($result);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);
		
		if ($result != false) {
			
			foreach ($result as $k)
			{
				$fecha_llamadaA = explode(" ", $k->getfechaLlamada());
				$fecha_llamadaB = explode("-", $fecha_llamadaA[0]);
				$fecha_llamada =  $fecha_llamadaB[2].'-'.$fecha_llamadaB[1].'-'.$fecha_llamadaB[0];
				$tipoOut = $this->mcategoriaafiliado->loadCategoriaId(array('idCategoria'=>$k->getTipoAfiliado()));
				 
				$array = $json_output['rows'][] = array(
				             'idAfiliado'         => $k->getIdAfiliado(),
				             'nombreAfiliado'     => $k->getNombreAfiliado(),
				             'telefonoAfiliado'   => $k->getTelefonoAfiliado(),
				             'telefono2Afiliado'  => $k->getTelefono2Afiliado(),
				             'faxAfiliado'        => $k->getFaxAfiliado(),
				             'emailAfiliado'      => $k->getEmailAfiliado(),
				             'webSiteAfiliado'    => $k->getWebSiteAfiliado(),
				             'tipoAfiliado'       => $tipoOut->getNombreCategoria(),
				             'Estrella'           => $k->getEstrella(),
				             'idNumAfiliado'      => $k->getIdNumAfiliado(),
				             'D_Calle'            => $k->getD_Calle(),
				             'D_Sector'           => $k->getD_Sector(),
				             'D_Provincia'        => $k->getD_Provincia(),
				             'D_Referencia'       => $k->getD_Referencia(),
				             'fechaLlamada'       => $fecha_llamada
				          );
			}
			
		}
		
	 	$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;	
		
	}
	
	public function data2()
	{
		
		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'ID_airport'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		    header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		    header("Cache-Control: no-cache, must-revalidate" );
		    header("Pragma: no-cache" );
		    
		$idOutbound = $this->input->post('iddetalle');
		 
		$result = $this->mprocesosoutbound->loadProsesoOutbound($idOutbound);
		$totalRecords = count($result);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);
		
		
		if ($result != false) {
			
			   foreach ($result as $k)
			   {
			   	     $fecha_llamadaA = explode(" ", $k->getProximaLlamada());
				     $fecha_llamadaB = explode("-", $fecha_llamadaA[0]);
				     $fecha_llamada =  $fecha_llamadaB[2].'-'.$fecha_llamadaB[1].'-'.$fecha_llamadaB[0];
				     
				     $fecha_llamadaA2 = explode(" ", $k->getFechaOutBound());
				     $fecha_llamadaB2 = explode("-", $fecha_llamadaA2[0]);
				     $fecha_llamada2 =  $fecha_llamadaB2[2].'-'.$fecha_llamadaB2[1].'-'.$fecha_llamadaB2[0];
				     
			   	    $out = $this->mtipo_outbound->loadOutboundById($k->getTipoOutbound());
			   	    $array = $json_output['rows'][] = array(
			   	                 'idSOutbound'      => $k->getIdSOutbound(),
			   	                 'idAfiliado'       => $k->getIdAfiliado(),
			   	                 'fechaOutBound'    => $fecha_llamada2,
			   	                 'fechaSystema'     => $k->getFechaSystema(),
			   	                 'Contacto'         => $k->getContacto(),
			   	                 'Comentario'       => $k->getComentario(),
			   	                 'tipoOutbound'     => $out->getTipoOutbound(),
			   	                 'proximaLlamada'   => $fecha_llamada
			   	              );
			   }
		}
		
		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;	
		
	}
	
	public function add()
	{
		$provincia = $this->provincias->LoadProvincias();
		$afiliado = $this->mcategoriaafiliado->LoadCategoria();
		$this->load->view('main', array('content_page' => 'add_outbound','menutop'=>10,'afiliado'=>$afiliado,'provincia'=>$provincia));
	}
	
    public function edit($id)
	{
		$statusOut = $this->mtipo_outbound->loadOutbound();
		$lastproseso = $this->mprocesosoutbound->loadLastProceso($id);
		$lastproseso =  array_reverse($lastproseso);
		$outbound = $this->moutbound->LoadOutboundById($id);
		$provincia = $this->provincias->LoadProvincias();
		$afiliado = $this->mcategoriaafiliado->LoadCategoria();
		$this->load->view('main', array('content_page' => 'edit_outbound','menutop'=>10,'afiliado'=>$afiliado,'provincia'=>$provincia,'outbound'=>$outbound,'lastproseso'=>$lastproseso[0],'statusout'=>$statusOut));
	}
	
	public function detalles($id)
	{
		$lastproseso = $this->mprocesosoutbound->loadLastProceso($id);
		$lastproseso =  array_reverse($lastproseso);
		$lastproseso = $lastproseso[0]; 
		$statusOut = $this->mtipo_outbound->loadOutboundById($lastproseso->getTipoOutbound());
		$outbound = $this->moutbound->LoadOutboundById($id);
		$provincia = $this->provincias->LoadProvinciaById($outbound->getD_Provincia());
		
		$afiliado = $this->mcategoriaafiliado->loadCategoriaId(array('idCategoria'=>$outbound->getTipoAfiliado())); 
		
		$this->load->view('main', array('content_page' => 'detalles_outbound','menutop'=>10,'afiliado'=>$afiliado->getNombreCategoria(),'provincia'=>$provincia->GetNombre(),'outbound'=>$outbound,'lastproseso'=>$statusOut->getTipoOutbound(),'statusout'=>$statusOut,'fechaR'=>$lastproseso->getFechaOutBound()));	
	}
	
	public function save()
	{
		  /**
		   *  @var VARIABLE CON COMTROL DE ERROR SE DEFINE ASI POR QUE MUCHAR NO SON REQUERIBLES Y VARIAN LOS DATOS
		   */
		  
		  $nombreAfiliado      = @$this->input->post('nombre');
		  $telefonoAfiliado    = @$this->input->post('telefono');
		  $telefonoAfiliafo2   = @$this->input->post('telefono2');
		  $fax                 = @$this->input->post('fax');
		  $email               = @$this->input->post('email');
		  $web                 = @$this->input->post('web');
		  $tipoAfiliado        = @$this->input->post('tafiliado');
		  $calle               = @$this->input->post('calle');
		  $sector              = @$this->input->post('sector');
		  $referenciaD         = @$this->input->post('dir');
		  $provincia           = @$this->input->post('provincia');
		  $fecha               = @$this->input->post('date');
		  $idOutbount          = @$this->input->post('idoutbount');
		  
		  $fechar = explode('/',$fecha);
		  $fecha = $fechar[2].'-'.$fechar[0].'-'.$fechar[1].' 00:00:00';
		          
		  if ($idOutbount <= 0) {
		  	    
		  	      $data = array(
		              'nombreAfiliado'       =>$nombreAfiliado,
		              'telefonoAfiliado'     =>$telefonoAfiliado,
		              'telefono2Afiliado'    =>$telefonoAfiliafo2,
		              'faxAfiliado'          =>$fax,
		              'emailAfiliado'        =>$email,
		              'webSiteAfiliado'      =>$web,
		              'tipoAfiliado'         =>$tipoAfiliado,
		              'D_Calle'              =>$calle,
		              'D_Sector'             =>$sector,
		              'D_Provincia'          =>$provincia,
		              'D_Referencia'         =>$referenciaD,
		              'fechaLlamada'         =>$fecha
		             );
		  	
               $afiliado = $this->moutbound->crearRegistro($data);
		  	   if ($afiliado != false) 
		  	   {  
		  	        $dataProse = array(
		  	                           'fechaOutBound'     => date('Y-m-d').' 00:00:00',
		  	                           'fechaSystema'      => date('Y-m-d').' 00:00:00',
		  	                           'Contacto'          => 'Primer Proseso',
		  	                           'Comentario'        => 'Primer Proseso',
		  	                           'tipoOutbound'      => 1,
		  	                           'proximaLlamada'    => $fecha,
		  	                           'idAfiliado'        => $afiliado->getIdAfiliado()
		  	        
		  	                    );
		  	                    
		  	       if ($this->mprocesosoutbound->crearRegistro($dataProse) == true) 
		  	       {
		  	       	   redirect('outbound');
		  	       }            
		  	   }
		  	  
		  }else{
		  	      if (strlen($fecha) < 3) {
		  	      	$fecha = date('Y-m-d').' 00:00:00';
		  	      }       
		  	
		  	      $data = array(
		                 'nombreAfiliado'       => $nombreAfiliado,
		                 'telefonoAfiliado'     => $telefonoAfiliado,
		                 'telefono2Afiliado'    => $telefonoAfiliafo2,
		                 'faxAfiliado'          => $fax,
		                 'emailAfiliado'        => $email,
		                 'webSiteAfiliado'      => $web,
		                 'tipoAfiliado'         => $tipoAfiliado,
		                 'D_Calle'              => $calle,
		                 'D_Sector'             => $sector,
		                 'D_Provincia'          => $provincia,
		                 'D_Referencia'         => $referenciaD,
		                 'fechaLlamada'         => $fecha,
		  	             'nombreContacto'       => @$this->input->post('nombreContacto'),
		  	             'telefonoConctato'     => @$this->input->post('telefonoContacto'),
		  	             'telefono2Conctato'    => @$this->input->post('telefonoContacto2'),
		  	             'emailConctato'        => @$this->input->post('emailContacto'),
		  	             'posicionContacto'     => @$this->input->post('posicionContacto'),
		  	             'nombreContacto2'      => @$this->input->post('nombreContacto2'),
		  	             'telefonoConctato2'    => @$this->input->post('telefonoContacto2'),
		  	             'telefono2Conctato2'   => @$this->input->post('telefono2Contacto2'),
		  	             'emailConctato2'       => @$this->input->post('emailContacto2'),
		  	             'posicionContacto2'    => @$this->input->post('posicionContacto2')
		             );
		  	
		  	    $fechaRegistro          = @$this->input->post('fecharegistro');
		  	    $ContactoProseso        = @$this->input->post('contactoPro');
		  	    $comentario             = @$this->input->post('comentario');
		  	    $statusProseso          = @$this->input->post('statusO');
		  	    
		  	    $fechar = explode('/',$fechaRegistro);
		        $fechaRegistro = $fechar[2].'-'.$fechar[0].'-'.$fechar[1].' 00:00:00';
		  	    
		     	if ($this->moutbound->editRegistro($data,$idOutbount) == true) 
		     	{
		  	        $dataProse = array(
		  	                           'fechaOutBound'     => $fechaRegistro,
		  	                           'fechaSystema'      => date('Y-m-d').' 00:00:00',
		  	                           'Contacto'          => $ContactoProseso,
		  	                           'Comentario'        => $comentario,
		  	                           'tipoOutbound'      => $statusProseso,
		  	                           'proximaLlamada'    => $fecha,
		  	                           'idAfiliado'        => $idOutbount
		  	                    );
		  	                    
		  	        if ($this->mprocesosoutbound->crearRegistro($dataProse) == true) 
		  	        { 
		  	       	   redirect('outbound');
		  	        }     
		     	}
		  	   
		  	
		  }         
		          
		          
	}
	
	
}

?>